#ifndef _PLAYER_STATE_CLIMB_H_
#define _PLAYER_STATE_CLIMB_H_

#include "PlayerState.h"

enum ClimbState
{
	CLIMB_STATE_GRAB = 0,
	CLIMB_STATE_CLIMBING,
	CLIMB_STATE_DONE,
	CLIMB_STATE_CLIMB_DOWN,
	CLIMB_STATE_SIZE
};

class PlayerStateClimb : public PlayerState
{
public:
	typedef int (PlayerStateClimb::*ClimbStateFptr)();



	PlayerStateClimb(Player* player, unsigned short climbState);
	~PlayerStateClimb(void);

	int update();
	void activate();
	void deactivate();
	char* ID() { return "Climb"; }

private:
	int grab();
	int climbing();
	int done();
	int climbDown();

	unsigned short _climbState;
	ClimbStateFptr _climbStateFptr[CLIMB_STATE_SIZE];
};

#endif // _PLAYER_STATE_CLIMB_H_